package cn.le.studyEnum;
/**
 * 向enum中添加方法
 */
public enum OzWitch {

    /**
     * 在定义方法时，必须要enum实例序列的最后添加y一个分号，同时，
     * Java要求必须先定义enum实例
     */
    WEST("Miss Gulch, aka eht wicked witch of the west"),
    NORTH("Glindea,the goog witch of the north"),
    EAST("wicked witch of the east wearer of the ruby Slippers crushed by ");

    private String descrption;

    /**
     * 将enum的构造器声明为private，但是对于它的可访问性而言，其实并没有变化，
     * 因为即使不声明为private，我们只能在enum定义的内部使用其构造创建enum实例，一旦enum的定义结束，
     * 编辑器就不允许我们在使用其构造器来创建任何实例了
     * @param descrption
     */
    private OzWitch(String descrption)
    {
        this.descrption = descrption;
    }
    public String getDescrption()
    {
        return descrption;
    }

    public static void main(String[] args) {

        for (OzWitch witch: OzWitch.values()) {
            System.out.println(witch+":"+witch.getDescrption());
        }
    }
}

/**
 * 方法覆盖
 */
enum SpaceShip{

    SCOUT,CATGO,TRANSPORT,CRUISER,BATTLSHIP,MOTHERSHIP;
    public String toString()
    {
        String id = name();
        String lower = id.substring(1).toLowerCase();
        return id.charAt(0)+lower;
    }

    public static void main(String[] args) {
        for (SpaceShip s:values() ) {
            System.out.println(s);
        }
    }
}
